# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

import matplotlib
matplotlib.rcParams['mathtext.fontset'] = 'stix'
matplotlib.rcParams['font.family'] = 'STIXGeneral'


#%% FONCTION
fq = 1
S = 1

def s(t,f,s,phi=0):
    
    return s*np.sin(2*np.pi*f*t+phi)


#LISTE DES X
t = np.linspace(0,5,1000) #début, fin, nombre de points

#LISTE DES Y
Y1 = s(t, fq, s=S)
Y2 = s(t, 2*fq, s=S*0.5,phi=1)
Y3 = s(t, 3*fq, s=S*0.33,phi=1.5)
Y4 = Y1 + Y2 + Y3

F1 = [fq,fq]
A1 = [S,0]

F2 = [2*fq,2*fq]
A2 = [S*0.5,0]

F3 = [3*fq,3*fq]
A3 = [S*0.33,0]

#%% GRAPHE

fig = plt.figure(figsize=(12,12))
ax = fig.add_subplot(312)
ax2 = fig.add_subplot(311)
ax3 = fig.add_subplot(313)

ax.set_xlim(0,5) #Limites de l'axe X
ax.set_ylim(-2,2) #Limites de l'axe Y

ax2.set_xlim(0,5) #Limites de l'axe X
ax2.set_ylim(-2,2) #Limites de l'axe Y

ax3.set_xlim(0,5) #Limites de l'axe X
ax3.set_ylim(0,1.2) #Limites de l'axe Y

ax.set_xlabel(r'$t$', fontsize = 20) #Titre axe X
ax.set_ylabel(r'$s(t)$', fontsize = 20) #Titre axe Y

ax2.set_xlabel(r'$t$', fontsize = 20) #Titre axe X
ax2.set_ylabel(r'$s(t)$', fontsize = 20) #Titre axe Y

ax3.set_xlabel('f(Hz)', fontsize = 20) #Titre axe X
ax3.set_ylabel('Amplitude', fontsize = 20) #Titre axe Y

ax2.plot(t,Y4, label='somme des signaux', lw=2.5) 

ax.plot(t,Y1, label='signal 1', lw=2.5) #label : nom dans la légende, lw : épaisseur du trait

ax.plot(t,Y2, label='signal 2', lw=2.5) #label : nom dans la légende, lw : épaisseur du trait

ax.plot(t,Y3, label='signal 3', lw=2.5) 

ax3.plot(F1, A1, lw=2.5)

ax3.plot(F2, A2, lw=2.5)

ax3.plot(F3, A3, lw=2.5)

#%% OPTIONNEL

ax.grid(True) #Grille
ax.legend(loc=2 ,prop={'size':15}) #Legende
ax2.legend(loc=2 ,prop={'size':15}) #Legende
ax2.grid(True) #Grille


